#pragma once

#include <EnvDetect.hpp>
#include <LibraryConfig.hpp>

#ifdef ZZZ_OS_WIN32
#include "zCoreConfig.hpp.win32"
#endif

#ifdef ZZZ_OS_WIN64
#include "zCoreConfig.hpp.win64"
#endif

#ifdef ZZZ_DYNAMIC
  #pragma warning(disable:4251)  // needs to have dll-interface
  #pragma warning(disable:4275)  // non dll-interface class 'zzz::Uncopyable' used as base for dll-interface class 'zzz::RapidXML'

  #ifdef ZCORE_SOURCE
    #define ZCORE_FUNC __declspec(dllexport)
    #define ZCORE_CLASS __declspec(dllexport)
  #else
    #define ZCORE_FUNC __declspec(dllimport)
    #define ZCORE_CLASS __declspec(dllimport)
  #endif
#else
  #define ZCORE_FUNC
  #define ZCORE_CLASS
#endif